8288
3293
Ik vroeg me af, vertragen witruimten en opmerkingen JavaScript? Ik voer een brute force-aanval uit die even duurt (30 seconden). Het verwijderen van witruimten vertoont geen significante snelheidsgroei, maar ik denk dat de browser gewoon meer moet analyseren.
Dus, heeft het enig nut om onnodige spaties en opmerkingen te verwijderen om het geheel te versnellen? 
Mensen gebruiken meestal minimizers om de GROOTTE van het script te verkleinen, om de downloadsnelheid te verbeteren, in plaats van enig verschil te maken in de snelheid waarmee het script wordt geparseerd.
Witruimte en opmerkingen hebben weinig effect op de tijd die een browser nodig heeft om uit te voeren, aangezien de parser moet controleren of het witruimte of een opmerking is, maar in werkelijkheid zal dit zo miniem zijn met de huidige rekenkracht dat het onmogelijk zou zijn om merk enige impact op.
SIZE is echter nog steeds belangrijk, zelfs met de grote bandbreedte die beschikbaar is in onze breedbandwereld.
|
Spaties en opmerkingen vergroten de grootte van het JavaScript-bestand, wat het daadwerkelijke downloaden van het bestand van de server vertraagt ​​- minificatie is het proces waarbij onnodige tekens uit een JavaScript-bestand worden verwijderd om het kleiner en gemakkelijker te downloaden te maken.
Aangezien u echter een brute force-aanval noemt, is de bottleneck waarschijnlijk niet de download. Probeer een profiler te gebruiken om te ontdekken wat u vertraagt.
|
Het heeft altijd een zin om uw assets te verkleinen, combineren en gzippen om de serverbelasting te verlichten.
Minificeren is de handeling waarnaar u verwijst, waarbij onnodige witruimte en opmerkingen worden verwijderd om de downloadsnelheid te verlagen.
Combineren zal hoogstwaarschijnlijk een nog grotere toename van de paginaweergavesnelheid laten zien; het is de handeling van het samenvoegen van al je javascript-bestanden tot één en al je css-bestanden tot één (het kan ook voor de meeste afbeeldingen worden gedaan, maar dat vereist wat meer werk). Dit wordt gedaan om het aantal verzoeken dat de browser naar uw server moet doen, te verminderen om de pagina te kunnen weergeven.
GZipping is het verder comprimeren van de gegevens, in een gecomprimeerd formaat, naar de browsers die aangeven dat ze dergelijke gegevens zullen accepteren. Dit verkleint de grootte verder, maar voegt aan beide uiteinden wat extra werkbelasting toe. U zult er waarschijnlijk een netto winst uit zien.
Afhankelijk van de omgeving waarin u werkt, zijn er verschillende componenten die u hierbij helpen, die meestal al het bovenstaande in één keer dekken.
De tijd die uw code nodig heeft om van de server te downloaden, heeft een direct effect op hoe lang het duurt voordat de pagina wordt weergegeven. JavaScript blokkeert, wat betekent dat een JS-blok elke verdere weergave zal voorkomen, totdat het blok volledig is uitgevoerd. Als zodanig zal de plaats waar u uw javascript-bestanden plaatst (dwz op welk punt in het weergaveproces ze worden gevraagd), hoeveel verzoeken er nodig zijn om deze volledig te downloaden, en hoeveel gegevens er moeten worden gedownload, een impact hebben. bij het laden van uw pagina, zoals het lijkt voor de gebruiker.
Zodra de browser uw code heeft geparseerd, of het nu javascript, css of html is, heeft het interne representaties gemaakt van het gedeelte dat het moet onthouden, en heeft de daadwerkelijke opmaak geen invloed meer op het.
|
Ik denk niet dat witruimte in js-code de uitvoering ervan vertraagt. Voor zover ik begrijp, verwijdert een javascript-interpreter alle opmerkingen en overtollige witruimte voordat deze wordt verwerkt. Het kan echter de downloadtijd en dus de laadtijd van een webpagina beïnvloeden.
Kijk hier voor wat extra informatie.
|
Het heeft echter weinig tot geen invloed op de werkelijke verwerkingssnelheid ...
Kleinere maat => minder bandbreedte => minder kosten => ??? => winst!
|
Uw antwoord
StackExchange.ifUsing ("editor", function () {
StackExchange.using ("externalEditor", function () {
StackExchange.using ("snippets", function () {
StackExchange.snippets.init ();
});
});
}, "code-snippets");
StackExchange.ready (function () {
var channelOptions = {
tags: "" .split (""),
id: "1"
};
initTagRenderer ("". split (""), "" .split (""), channelOptions);
StackExchange.using ("externalEditor", function () {
// Moet de editor na fragmenten activeren, als fragmenten zijn ingeschakeld
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using ("snippets", function () {
createEditor ();
});
}
anders {
createEditor ();
}
});
functie createEditor () {
StackExchange.prepareEditor ({
useStacksEditor: false,
heartbeatType: 'antwoord',
autoActivateHeartbeat: false,
convertImagesToLinks: waar,
noModals: waar,
showLowRepImageUploadWarning: true,
ReputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Aangedreven door \ u003ca href = \" https: //imgur.com/ \ "\ u003e \ u003csvg class = \" svg-icon \ "width = \" 50 \ "hoogte = \" 18 \ "viewBox = \ "0 0 50 18 \" fill = \ "none \" xmlns = \ "http: //www.w3.org/2000/svg \" \ u003e \ u003cpath d = \ "M46.1709 9.17788C46.1709 8.26454 46.2665 7.94324 47.1084 7.58816C47.4091 7.46349 47.7169 7.36433 48.0099 7.26993C48.9099 6.97997 49.672 6.73443 49.672 5.93063C49.672 5.22043 48.9832 4.61182 48.1414 4.61182C47.4335 4.61182 46.7256 4.91628 46.0943 5.000 43.1481 6.59048V11.9512C43.1481 13.2535 43.6264 13.8962 44.6595 13.8962C45.6924 13.8962 46.1709 13.2535 46.1709 11.9512V9.17788Z \ "/ \ u003e \ u003cpath d = \" M32.492 10.1419C32.492 14.045.14.07 37.492 14.045.14.07 37.045 14.6954 41.5985 12.6954 41.5985 10.1419V6.59049C41.5985 5.28821 41.1394 4.6623240.1061 4.66232C39.0732 4.66232 38.5948 5.28821 38.5948 6.59049V9.60062C38.5948 10.8521 38.2696 11.5455 37.0451 11.5455C35.8209 11.5455 35.4954 10.8521 35.4954 9.60062V6.59049C35.4954 4.60062V6.59049C35.4954 4.60062V6.59049C35.4954 4.60062 "/ \ u003e \ u003cpath fill-rule = \" evenodd \ "clip-rule = \" evenodd \ "d = \" M25.6622 17.6335C27.8049 17.6335 29.3739 16.9402 30.2537 15.6379C30.8468 14.7755 30.9615 13.5579 30.9615 11.9512V6. 59049C30.9615 5.28821 30.4833 4.66231 29.4502 4.66231C28.9913 4.66231 28.4555 4.94978 28.1109 5.50789C27.499 4.86533 26.7335 4.56087 25.7005 4.56087C23.1369 4.56087 21.0134 6.57349 21.0134 9.27932C23.1369. 1109 12.7229 28.1161 12.7799 28.121 12.8346C28.1256 12.8854 28.1301 12.9342 28.1301 12.983C28.1301 14.4373 27.2502 15.2321 25.777 15.2321C24.8349 15.2321 24.1352 14.8854 28.1301 12.9342 28.1301 12.983C28.1301 14.4373 27.2502 15.2321 25.777 15.2321C24.8349 15.2321 24.1352 14.8854 18 21.2429 15.0123 21.2429 15.6887C21.2429 16.7375 22.9072 17.6335 25.6622 17.6335ZM24.1317 9.27932C24.1317 7.94324 24.9928 7.09766 26.1024 7.09766C27.2119 7.09766 28.0918 7.94324 28.0918 9.27932C28.51.26 26.1024 7.09766C28.51.16 \ "/ \ u003e \ u003cpath d = \" M16.8045 11.9512C16.8045 13.2535 17.2637 13.8962 18.2965 13.8962C19.3298 13.8962 19.8079 13.2535 19.8079 11.9512V8.12928C19.8079 5.82936 18.4879 4.62880 16.4027 4.642866C15.159 .653 5.05154 11.6581 4.62866 10.3573 4.62866C9.34336 4.62866 8.57809 4.89931 7.9466 5.5079C7.58314 4.9328 7.10506 4.66232 6.51203 4.66232C5.47873 4.66232 5.00066 5.28821 5.00066 6.59049V11.9512C5.0003.85.68 .90741C8.0232 7.58817 8.44431 6.91179 9.53458 6.91179C10.5104 6.91179 10.893 7.58817 10.893 8.94108V11.9512C10.893 13.2535 11.3711 13.8962 12.4044 13.8962C13.4375 13.8962 13.915 7 13.2535 13.9157 11.9512V8.90741C13.9157 7.58817 14.3365 6.91179 15.4269 6.91179C16.4027 6.91179 16.8045 7.58817 16.8045 8.94108V11.9512Z \ "/ \ u003e \ u003cpath d = \" M3.31675 6.59049C3.31675 4.662C 4.59049C3.31675 5.28821 1.82466 791758 4.66232 0.313354 5.28821 0.313354 6.59049V11.9512C0.313354 13.2535 0.791758 13.8962 1.82471 13.8962C2.85798 13.8962 3.31675 13.2535 3.31675 11.9512V6.59049Z \ "/ \ u003e \ u003cpath029.84 \" M115.87209 \ " C0 2.87869 0.822846 3.57676 1.87209 3.57676C2.90056 3.57676 3.7234 2.87869 3.7234 1.98861C3.7234 1.1159 2.90056 0.400291 1.87209 0.400291Z \ "fill = \" # 1BB76E \ "/ \ u003e \ u003c / svg \ u003e", a
contentPolicyHtml: "Gebruikersbijdragen gelicentieerd onder \ u003ca href = \" https: //stackoverflow.com/help/licensing \ "\ u003ecc by-sa \ u003c / a \ u003e \ u003ca href = \" https://stackoverflow.com / legal / content-policy \ "\ u003e (contentbeleid) \ u003c / a \ u003e",
allowUrls: waar
},
onDemand: waar,
discardSelector: ".discard-answer"
, onmiddellijkShowMarkdownHelp: true, enableTables: true, enableSnippets: true
});
}
});
Bedankt voor het bijdragen aan een antwoord op Stack Overflow!
Zorg ervoor dat u de vraag beantwoordt. Geef details en deel uw onderzoek!
Maar vermijd ...
Om hulp, opheldering vragen of reageren op andere antwoorden.
Uitspraken doen op basis van meningen; ondersteun ze met referenties of persoonlijke ervaring.
Bekijk onze tips voor het schrijven van goede antwoorden voor meer informatie.
Concept opgeslagen
Concept verwijderd
Meld u aan of log in
StackExchange.ready (function () {
StackExchange.helpers.onClickDraftSave ('# login-link');
});
Meld u aan met Google
Meld u aan met Facebook
Meld u aan met e-mail en wachtwoord
Verzenden
Post als gast
Naam
E-mail
Vereist, maar nooit getoond
StackExchange.ready (
functie () {
StackExchange.openid.initPostLogin ('. New-post-login', 'https% 3a% 2f% 2fstackoverflow.com% 2fquestions% 2f4423553% 2fdo-spaces-comments-slow-javascript-down% 23new-answer', 'question_page' );
}
);
Post als gast
Naam
E-mail
Vereist, maar nooit getoond
Plaats uw antwoord
Gooi weg
Door op "Plaats uw antwoord" te klikken, gaat u akkoord met onze servicevoorwaarden, privacybeleid en cookiebeleid
Niet het antwoord waar je naar zoekt? Blader door andere vragen met de tag javascript of stel uw eigen vraag.